package com.youi.dao;

import com.youi.entity.Goods;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface GoodsDao extends BaseDao<Goods> {
    public Goods getForUpdate(Long id);

    public List<Goods> getNoObjectList(@Param("params") Map<String, Object> params, @Param("noParams") Map<String, Object> noParams);


    /**
     * 获取商品列表
     *
     * @param params
     * @return
     */
    List<Goods> listGoodsByPage(Map<String, Object> params);

    /**
     * 计算总数
     *
     * @param params
     * @return
     */
    Integer countListGoods(Map<String, Object> params);

    /**
     * 批量更新商品状态
     *
     * @param goodsIds
     * @param status
     * @return
     */
    Integer batchUpdateGoodsStatus(@Param("goodsIds") List<Long> goodsIds, @Param("status") Integer status);

    /**
     * 获取实时库存为0的商品列表
     * 实时库存为0：商品下的所有规格的实时库存汇总为0
     *
     * @param param
     * @return
     */
    List<Goods> listNoStockGoods(Map<String, Object> param);
}